CC=g++
# 源码目录
SRC_DIR = ./src
# 库目录
LIB_DIR = ./libs
# 头文件
INC_DIR = ./include
# 输出的文件目录
BUILD_DIR = build

LIBSRC=$(wildcard $(LIB_DIR)/*.cpp)
LIBOUT=-o $(BUILD_DIR)/libSimpleNetwork.so -fPIC -shared
OUT=-o $(BUILD_DIR)/server.out
#源文件.c
#执行如下函数 $(wildcard sources/*.c)函数的输出为：
SRCS = $(wildcard $(SRC_DIR)/*.cpp)
#DEPS变量存储所有依赖的头文件，它的值为wildcard函数的输出
#头文件
# DEPS = $(wildcard $(INC_DIR)/*.h)
CFLAGS = -Wall -std=c++11 $(patsubst %, -I%, $(INC_DIR))

# CPP_FILES := $(wildcard *.cpp)
LIBOBJ_FILES := $(patsubst %.cpp,%.o,$(LIBSRC))

all:
	$(CC) $(CFLAGS) $(LIBSRC) $(SRCS) $(OUT) -ljsoncpp -lpthread

# 创建lib库
lib:
	$(CC) $(CFLAGS) $(LIBSRC) $(LIBOUT)
	make libSimpleNetwork.a


libSimpleNetwork.a: $(LIBOBJ_FILES)
	ar rcs $(BUILD_DIR)/$@ $^

%.o: %.cpp
	$(CC) $(CFLAGS) -c $< -o $@


install:
	cp $(BUILD_DIR)/libSimpleNetwork.so /usr/lib/
	cp $(INC_DIR)/* /usr/include

uninstall:
	rm -rf /usr/lib/libSimpleNetwork.so 

clean:
	rm -rf $(BUILD_DIR)/* $(LIB_DIR)/*.o


